package com.ynkbny.lgapi;

import com.alibaba.fastjson.JSONObject;
import com.dtflys.forest.annotation.Header;
import com.dtflys.forest.annotation.Post;
import com.dtflys.forest.annotation.Query;
import com.dtflys.forest.annotation.Var;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @Author YY
 * @Date 2023/7/27 18:48
 */
@Service
public interface Device {

    String URL = "https://api.bknykf.com/api/device/";

    /**
     * 查询项目的设备列表
     * @param projId 项目ID
     * @return json对象
     */
    @Post(URL+"queryDeviceByProject?projId={projId}")
    JSONObject queryDeviceByProject(@Header("__sid") String token, @Var("projId") long projId);

    /**
     * 查询单个设备的属性快照
     * @param token token
     * @param id 设备ID
     * @return json对象
     */
    @Post(URL+"queryDeviceParamStatus?id={id}")
    JSONObject queryDeviceParamStatus(@Header("__sid") String token, @Var("id") long id);
    
    /**
     * 批量查询属性的历史数据
     * @param token token
     * @param deviceId 设备ID
     * @param start 开始时间
     * @param end 结束时间(最大可查询间隔:七天)
     * @param metricList 多个属性flag(可选,不填查询设备下所有参数)
     * @return json对象
     */
    @Post(URL+"queryDeviceParamHistoryData?deviceId={deviceId}&start={start}&end={end}")
    JSONObject queryDeviceParamHistoryData(@Header("__sid") String token,
                                           @Var("deviceId") long deviceId,
                                           @Var("start") long start,
                                           @Var("end") long end,
                                           @Query("metric") List<String> metricList);
}
